Existing compilers typically produce a compilation result by transforming source code from a high-level programming language into a lower-level language (e.g., assembly language or machine code). Some compilers may produce a high-level abstract representation of the source code that is intended for inspection by a user. Such high-level abstract representations may allow a program to inspect the compilation result of the source code. However, high-level abstract representations that are inspectable may not be executable. Existing compilers may create a high-level representation of program code, but the high-level representation is output to a file (e.g., in an immutable custom file format). Because the compilation result is output to a file, it may not be possible to inspect and modify the compilation result during run-time of the process.